跳到主要内容

OpenCode使用系列课程连载(2)——进阶技巧篇(让你的 AI 更懂你)

Excerpt

哈喽大家好~ 上期我们讲了 OpenCode 的基础操作,相信大家已经能上手写代码、改 bug 了。但光会用还不够,今天咱们讲点真正能提升效率的进阶技巧,让你的 AI 助手更懂你,帮你省更多时间!本篇不讲复杂原理,全是你日常能用得上的实用技巧,跟着练一遍,工作效率直接翻倍!一、会话管理:别让你的工作白费新手最容易踩的坑:干半天忘记保存,第二天全没了。OpenCode 的会话管理就是来救你的,学会这


哈喽大家好~ 上期我们讲了 OpenCode 的基础操作,相信大家已经能上手写代码、改 bug 了。但光会用还不够,今天咱们讲点真正能提升效率的进阶技巧,让你的 AI 助手更懂你,帮你省更多时间!

本篇不讲复杂原理,全是你日常能用得上的实用技巧,跟着练一遍,工作效率直接翻倍!


一、会话管理:别让你的工作白费

新手最容易踩的坑:干半天忘记保存,第二天全没了。OpenCode 的会话管理就是来救你的,学会这招,你的工作成果再也不会丢。

1.1 保存会话:每完成一个功能点就保存

在 OpenCode 交互界面内,直接输入:

/save

就能保存当前会话的所有操作记录、AI 对话、文件修改等。

什么时候保存? 建议养成这些习惯:

  • 每写完一个功能模块(比如加法函数、数据库查询)就 /save

  • 每次修改重要文件后立即 /save

  • 准备离开电脑前一定要 /save

  • 遇到复杂问题开始调试前先 /save(留个恢复点)

1.2 恢复会话:秒回到上次工作状态

下次继续干活时,进入你的项目目录,输入:

opencode --continue

就能直接回到上次保存的状态,包括:

  • AI 对话历史

  • 文件修改记录

  • 连接的模型

  • 当前的工作目录

实战场景:昨天写了一半的 API 接口,今天直接 opencode --continue,所有上下文都在,不用重新解释需求,AI 直接接着干。

1.3 会话文件存储位置

OpenCode 会自动保存会话文件到你的项目目录下,文件名格式为:.opencode_session_{时间戳}.json

  • Windows:通常在 C:\Users\你的用户名\.opencode\sessions\

  • Linux/Mac:通常在 ~/.opencode/sessions/

小技巧:如果你想把会话分享给队友,直接复制这个 JSON 文件到项目目录,队友用 opencode --continue 就能加载你的会话。

1.4 多项目会话隔离技巧

不同项目建议用不同的会话,避免混淆:

# 项目A
cd ~/project-a
opencode --continue  # 自动加载 project-a 的会话

# 项目B
cd ~/project-b
opencode --continue  # 自动加载 project-b 的会话

核心原则:一个项目一个会话文件,互不干扰,AI 能精准理解每个项目的上下文。

640


二、全局提示词:一次配置,长期受益

上期我们讲了 /init 命令会自动生成 AGENTS.md 文件,这个文件就是全局提示词的核心。配置好它,AI 能更懂你的项目规范,少踩坑、多出活。

2.1 AGENTS.md 详解:AI 的项目说明书

AGENTS.md 是 OpenCode 自动生成的项目说明文件,AI 每次生成代码前都会先读这个文件,了解你的项目结构、编码规范、技术栈等。

自动生成的 AGENTS.md 内容示例

# 项目配置

## 项目类型
Golang 项目

## 目录结构
- src/: 源代码目录
- tests/: 测试文件目录
- docs/: 文档目录

## 编码规范
- 使用 golangci-lint 进行代码检查
- 遵循 Go 官方编码规范
- 函数命名采用驼峰命名法

2.2 自定义全局提示词:让 AI 更懂你

你可以手动编辑 AGENTS.md,添加你的个性化需求,让 AI 生成更符合你预期的代码。

实战模板:推荐添加的内容

# 项目配置(自定义版)

## 技术栈
- 后端框架:Gin
- 数据库:PostgreSQL
- ORM:GORM
- 测试框架:testify

## 编码风格(重点)
- 错误处理必须显式处理,不能忽略
- 所有对外 API 必须添加注释(包含参数说明、返回值说明)
- 敏感信息(密码、密钥)必须使用环境变量
- 日志级别:INFO/WARN/ERROR

## 常用工具链
- 代码格式化:go fmt
- 依赖管理:go mod
- 热重载:air
- API 测试:curl / Postman

## 禁止事项
- 禁止使用 `sync.WaitGroup` 替代 `context.Context`
- 禁止在循环中频繁创建 goroutine
- 禁止硬编码数据库连接字符串

配置后的效果:你让 AI "写一个用户登录接口",它会自动:

  • 使用 Gin 框架

  • 添加完整的参数注释

  • 错误处理显式返回

  • 敏感信息使用环境变量

  • 符合 GORM 的数据库操作规范

2.3 全局提示词的最佳实践

写什么

  • ✅ 项目技术栈(框架、数据库、工具链)

  • ✅ 编码规范(命名规则、注释要求、错误处理)

  • ✅ 目录结构(每个目录的用途)

  • ✅ 禁止事项(避免踩坑)

不写什么

  • ❌ 过于详细的业务逻辑(AI 会从代码中学习)

  • ❌ 与代码无关的团队规则(比如会议时间、请假流程)

  • ❌ 重复的官方规范(Go 官方规范不用写)

如何迭代优化

  • 初期配置基础规范即可

  • 使用过程中发现 AI 总是犯错,就补充到 AGENTS.md

  • 定期回顾(每周/每月),删除过时的配置

2.4 多项目共享提示词模板

如果你有多个项目用相同的技术栈和规范,可以创建一个共享模板:

# 创建共享模板
mkdir ~/.opencode/templates
cat > ~/.opencode/templates/golang-standard.md << EOF
# Golang 标准项目配置
[你的标准配置内容]
EOF

# 新项目直接复制模板
cp ~/.opencode/templates/golang-standard.md ~/my-new-project/AGENTS.md

核心优势:新建项目 10 秒配置好规范,AI 立即进入状态,不用每次手写。

640.1


三、内置 Agent 系统:让 AI 主动帮你干活

这是 OpenCode 的杀手级功能,Agent 不会等着你下命令,而是主动帮你完成任务。理解了这个概念,你的开发效率能提升一个量级。

3.1 什么是 Agent 系统?

普通模式:你问"写一个用户注册接口",AI 给你代码,你手动复制、粘贴、运行、测试。

Agent 模式:你问"帮我完成用户注册功能",Agent 会自动:

  • 分析项目结构

  • 编写代码

  • 创建必要的文件

  • 运行测试

  • 发现 bug 自动修复

  • 生成文档

核心差异:Agent 是主动的、有目标的,能完成一整套任务链,而不是只回答你的单点问题。

3.2 常用内置 Agent 调用示例

OpenCode 内置了多个实用 Agent,直接调用就行:

代码审查 Agent

/code_review src/user.go

Agent 会:

  • 检查代码是否符合规范

  • 发现潜在 bug

  • 提出优化建议

  • 自动修复简单问题

测试生成 Agent

/gen_tests src/user.go

Agent 会:

  • 分析代码逻辑

  • 自动生成测试用例

  • 覆盖边界情况

  • 运行测试确保通过

文档生成 Agent

/gen_docs src/api/

Agent 会:

  • 扫描 API 代码

  • 自动生成接口文档

  • 提取参数说明

  • 输出 Markdown 格式文档

重构 Agent

/refactor src/legacy.go --style=clean

Agent 会:

  • 分析旧代码

  • 重构为清晰可维护的代码

  • 保持功能不变

  • 自动运行测试确保重构正确

3.3 Agent 与普通命令的对比

对比维度普通命令Agent 系统
工作方式被动响应你的指令主动完成一整套任务
任务范围单点问题(写一个函数)多步骤任务(完成一个功能模块)
自主性不会自动执行后续步骤自动判断下一步做什么
适用场景快速查询、代码生成功能开发、测试、重构

实战建议

  • 简单任务用普通命令(比如"写一个排序函数")

  • 复杂任务用 Agent(比如"帮我完成用户权限管理功能")

3.4 创建自定义 Agent 的基础(进阶篇预告)

OpenCode 支持你创建自己的 Agent,但需要理解一些高级概念,比如:

  • Agent 的任务分解逻辑

  • 工具链的调用方式

  • 状态管理机制

这部分我们留到进阶篇详细讲,现在先用好内置 Agent 就够了。

640.2


四、管理你的 AI 环境:多模型协作

新手前期用一个模型就够了,但当你项目变复杂,就需要学会多模型协作,让不同的 AI 各司其职,效率更高。

4.1 多模型配置实战

OpenCode 支持同时配置多个模型,你可以在一个会话中灵活切换。

配置步骤

# 连接第一个模型(用于写代码)
/connect GPT-4

# 保存会话
/save

# 切换到第二个模型(用于代码审查)
/models
# 选择 Claude-3.5-Sonnet

配置后的使用场景

  • 写代码用 GPT-4(代码质量高)

  • 代码审查用 Claude-3.5-Sonnet(理解能力强)

  • 简单任务用 GPT-3.5(响应快、成本低)

4.2 场景化模型选择策略

不同模型适合不同任务,选对模型事半功倍:

写代码场景

  • 首选:GPT-4 / Claude-3-Opus

  • 备选:GPT-3.5(简单任务)

  • 不推荐:本地小模型(代码质量不稳定)

代码审查场景

  • 首选:Claude-3.5-Sonnet / Claude-3-Opus

  • 备选:GPT-4

  • 不推荐:GPT-3.5(理解能力有限)

文档生成场景

  • 首选:Claude-3-Opus(文笔好)

  • 备选:GPT-4

  • 不推荐:GPT-3.5(生成的文档不够清晰)

快速问答场景

  • 首选:GPT-3.5(响应快)

  • 备选:本地模型(免费)

  • 不推荐:GPT-4(成本高、没必要)

4.3 模型切换技巧

快速切换模型

/models

会弹出所有已配置的模型列表,用上下键选择,按 Enter 确认。

临时切换模型(不保存配置)

/connect --temp Claude-3.5-Sonnet

这个模型只在当前对话中生效,下次启动会话自动恢复默认模型。

设置默认模型

在 AGENTS.md 中添加:

# 默认模型配置
default_model: GPT-4

每次启动会话自动使用这个模型。

4.4 成本控制策略

不同模型的 API 调用成本差异很大,合理选择能省不少钱:

模型成本对比(假设 GPT-3.5 为基准)

  • GPT-3.5:1x(最便宜)

  • GPT-4:10x-20x(贵但质量高)

  • Claude-3.5-Sonnet:5x-8x(性价比不错)

  • Claude-3-Opus:15x-25x(最贵但理解能力最强)

省钱技巧

  • 简单任务(写个小函数、查个 API)用 GPT-3.5

  • 复杂任务(开发一个功能模块)用 GPT-4 或 Claude-3-Opus

  • 本地模型(Llama 3)完全免费,适合离线开发

  • 定期检查 API 调用量,避免超支

核心原则能用便宜的就不用贵的,能不调 API 就不调 API(比如先 /save 保存会话,下次直接恢复,不用重新让 AI 理解项目)。


五、使用图片:特殊场景的补充

这个功能不是 OpenCode 的核心,终端版天然限制图片直接交互,但特定场景下还是能用。

5.1 图片文件引用:让 AI 理解图片路径

OpenCode 支持你通过 @ 符号加载图片文件,但不是让 AI 看图片内容,而是让 AI 理解图片的文件路径和引用关系

实战场景:你有一个图片资源目录 assets/images/logo.png,想让 AI 生成引用这个图片的 HTML 代码。

@ assets/images/logo.png

然后让 AI 生成代码:

生成一个 HTML 页面,使用 assets/images/logo.png 作为 logo

AI 会生成:

<img src="assets/images/logo.png" alt="Logo">

核心作用:AI 理解图片路径,生成正确的引用代码,而不是 AI 本身"看"到了图片内容。

5.2 生成图片处理代码

这是最实用的图片相关场景:让 AI 写代码来处理图片。

场景1:批量调整图片尺寸

生成一个 Python 脚本,批量将 images/ 目录下的所有图片调整为 800x600 像素

AI 会生成:

from PIL import Image
import os

def resize_images(input_dir, output_dir, size=(800, 600)):
    ifnot os.path.exists(output_dir):
        os.makedirs(output_dir)

    for filename in os.listdir(input_dir):
        if filename.endswith(('.jpg', '.jpeg', '.png')):
            img_path = os.path.join(input_dir, filename)
            img = Image.open(img_path)
            resized_img = img.resize(size)
            output_path = os.path.join(output_dir, filename)
            resized_img.save(output_path)

resize_images('images/', 'resized_images/')

场景2:添加水印

生成一个 Python 脚本,给所有图片添加右下角的水印,水印文字为 "My Watermark"

AI 会生成完整的水印添加代码。

场景3:图片格式转换

将所有 PNG 图片转换为 JPG 格式

AI 会生成格式转换脚本。

5.3 图片路径错误排查

新手常犯的错误:图片路径写错,导致引用失败。OpenCode 的 AI 能帮你快速排查。

检查我的 HTML 文件中引用的图片路径是否正确

AI 会:

  • 扫描 HTML 文件

  • 提取所有图片路径

  • 检查文件是否存在

  • 报告错误路径

  • 提供修复建议

实战价值:不用手动一个个检查,AI 几秒钟帮你定位所有图片路径问题。

5.4 明确边界:终端版的限制

OpenCode 终端版能做什么

  • ✅ 理解图片文件路径

  • ✅ 生成图片处理代码

  • ✅ 检查图片路径是否正确

  • ✅ 提供图片相关的代码建议

OpenCode 终端版不能做什么

  • ❌ 直接粘贴截图让 AI 理解(需要 Web 界面或插件)

  • ❌ 让 AI"看"图片内容并分析(多模态理解需要特定模型支持)

  • ❌ 直接在终端显示图片

核心原则:把 OpenCode 当代码生成工具,不是图片处理工具。图片相关任务,让 AI 写代码,你自己运行代码处理图片。


附录:进阶命令汇总表

整理全文高频核心命令,按类别划分,方便快速查找、复制使用:

一、会话管理:别让你的工作白费

命令类别具体命令用途说明(进阶重点)
会话管理/save保存当前会话,每完成一个功能点就保存
opencode --continue恢复上次会话,回到上次工作状态
ls ~/.opencode/sessions/查看所有会话文件(Linux/Mac)
全局提示词/init生成 AGENTS.md 文件(第一篇已讲)
cat AGENTS.md查看全局提示词配置
vim AGENTS.md编辑全局提示词(Linux/Mac)
Agent 系统/code_review 文件名代码审查 Agent
/gen_tests 文件名测试生成 Agent
/gen_docs 目录/文档生成 Agent
/refactor 文件名 --style=clean重构 Agent
模型管理/connect 模型名称连接新模型
/models查看所有已配置模型并切换
/connect --temp 模型名称临时切换模型(不保存)
图片操作@ 图片路径加载图片文件路径
ls assets/images/检查图片目录是否存在
file 图片路径检查图片文件类型(Linux/Mac)

本期重点回顾

今天讲了 5 个进阶技巧,按实用频率排序:

  1. 会话管理:每完成一个功能点就 /save,用 opencode --continue 快速恢复

  2. 全局提示词:编辑 AGENTS.md,让 AI 更懂你的项目规范

  3. Agent 系统:主动帮你完成任务,不是被动响应命令

  4. 多模型协作:不同任务用不同模型,效率和成本双优化

  5. 使用图片:生成图片处理代码,不是让 AI 直接看图片

新手进阶路径

  • 第一周:学会会话管理,别丢工作成果

  • 第二周:配置全局提示词,让 AI 更懂你

  • 第三周:尝试内置 Agent,体验主动帮你干活

  • 第四周:配置多模型,优化效率和成本

下期预告:我们会讲更高级的技巧,比如自定义 Agent、与外部工具集成、复杂项目实战等,让你的 AI 助手更强大!


有问题评论区留言,咱们一起学习成长~ 下期见!

Bottom GIF
Top GIF